/*
 * Copyright 2010 Stefan Bachert, wwwApp, http://gwtworld.de
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package a1.decor;

public interface DecorInterface {
//
// The item should have a semantic and not just say a certain widget has this value
// but this happens much often than I like it. Better semantics are welcome 
// 
// good semantics are
// * state (disabled, selected)
//
  
	public String getDecorname ();      // name
	public String getDecorversion ();   // version
  // FONT
  public String getFont ();           // font for anything
  public String getFixedFont ();      // fixed font 
  // the following font may be the same or different in special cases
  // might be to much fonts
  public String getEditFont ();       // font for text input
  public String getLabelFont ();      // font for any kind of labels
  public String getButtonFont ();     // font for buttons
  public String getCaptionFont ();    // font for captions, may window titles.
  public String getTabFont ();        // font for tabs
  public String getMenuFont ();       // font menus
  // COLOR
  public String getColor ();          // general color for text
  public String getLinkColor ();      // color for links
  public String getColorDisabled ();  // color for disabled items
  public String getColorError ();     // color for error message, need background too?
  public String getColorHint ();      // color for warning and info messages, need background too?
  // the following font may be the same or different in special cases
  // might be to much colors
  public String getEditColor ();      // color for text input
  public String getLabelColor ();     // color for any kind of labels 
  public String getButtonColor ();    // color for button input
  public String getCaptionColor ();   // color for caption input
  public String getTabColor ();       // color for tab input
  public String getMenuColor ();      // color for menu input
  // BACKGROUND
  public String getBackground ();     // general background, pure color
  // other BACKGROUNDs are images, so you can choose a color, or a color gradient, or whatever you like

  // SELECTION
  // are pure colors.
  // same colors could not be controlled. e.g. selection of a <select> 
  public String getSelectionMenu ();  // selection color (background) for menus
  public String getSelectionRow ();   // selection color (background) for rows
  public String getSelectionColumn ();// selection color (background) for columns
  public String getSelectionCell ();  // selection color (background) for rows
  // MARGIN
  public String getMargin ();         // general items
  // PADDING
  public String getPadding ();        // general padding
  public String getEditPadding ();    // padding around editable text
  public String getCaptionPadding (); // padding around a caption
  public String getMenuPadding ();    // padding around a menu
  public String getTextPadding ();    // padding around a text, e.g. with a button
  public String getTextPressedPadding (); // padding around a text when pressed, e.g. with a button
  public String getBoxLabelPadding ();  // padding around a text following a radiobutton or a checkbox
  public String getDialogPadding ();  // padding around any panel which contains widgets
  // BORDER
  public String getBorder ();         // general border
  public String getBorderRaised ();   // a raised border
  public String getBorderPressed ();  // a border for a pressed state, in general some kind of button
  public String getBorderFocused ();  // a border signaling a focused state
  public String getBorderNormal ();   // a border signaling a normal state
  public String getBorderImportant ();// a border signaling importance
  public String getBorderTabNorth (); // a border for tab directed to north
  public String getBorderTabEast ();  // a border for tab directed to east
  public String getBorderTabSouth (); // a border for tab directed to south
  public String getBorderTabWest ();  // a border for tab directed to west
  public String getBorderMenu ();     // a border for menus
}
